import os

from celery import Celery
from celery.schedules import crontab

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'hostmgmt.settings')

app = Celery('hostmgmt')
app.config_from_object('django.conf:settings', namespace='CELERY')

app.autodiscover_tasks()

# 配置定时任务
app.conf.beat_schedule = {
    'password-rotation': {
        'task': 'hosts.tasks.rotate_host_passwords',
        'schedule': crontab(hour='*/8'),  # 每8小时执行一次
        'args': (),
        'options': {
            'expires': 1800,  # 30分钟后过期
        }
    },
    'daily-host-stats': {
        'task': 'hosts.tasks.generate_daily_statistics',
        'schedule': crontab(minute=0, hour=0),  # 每天00:00执行
        'args': (),
        'options': {
            'expires': 3600,  # 1小时后过期
        }
    }
}
